/* 
 * File:   RationnalConverter.cpp
 * Author: Gab'z
 * 
 * Created on 4 juin 2012, 09:39
 */

#include "RationnalConverter.h"
#include "../../../Context.h"
#include "../../literal/Complex.h"
#include "../../literal/Rationnal.h"

namespace calculator {

    RationnalConverter::RationnalConverter(const std::string name) : UnaryOperator(name) {
    }

    RationnalConverter::RationnalConverter(const RationnalConverter& orig) : UnaryOperator(orig._name) {
    }

    RationnalConverter::~RationnalConverter() {
    }

    std::string RationnalConverter::isExecutable() const {
        if (Context::getInstance()->getCurrentStack()->size() == 0) return "Empty stack";
        return "Not yet implemented";
    }

    RationnalConverter* RationnalConverter::clone() const {
        return new RationnalConverter(_name);
    }

    const Number* RationnalConverter::apply(const Number* number) const throw (ArithmeticException) {
        // TODO méthode de conversion réel -> rationnel
        return number->clone();
    }

}